package com.egoo.ticket.server.service;

import com.alibaba.fastjson.JSONArray;
import com.egoo.ticket.server.pojo.entity.WorkOrderStatus;
import com.egoo.ticket.server.utils.common.DbResponse;

import java.util.List;

/**
 * @author Administrator
 */
public interface WorkOrderStatusService {
	/**
	 * 获取对应id的状态信息
	 * @param id
	 * @return
	 */
	WorkOrderStatus selectById(Integer id,String tenantId);

	/**
	 * 通过名称获取状态列表
	 * @param name
	 * @param currentPage
	 * @param pageSize
	 * @param tenantId
	 * @return
	 */
	DbResponse selectByName(String name,
							Integer currentPage,
							Integer pageSize,
							String tenantId);

	/**
	 * 插入状态
	 * @param name
	 * @param ordering
	 * @param userId
	 * @param tenantId
	 * @return
	 */
	Integer insertStatus(String name, Integer ordering, String userId, String tenantId);

	/**
	 * 更新
	 * @param workOrderStatus
	 * @param userId
	 * @return
	 */
	Integer updateStatus(WorkOrderStatus workOrderStatus, String userId);

	/**
	 * 删除
	 * @param id
	 * @return
	 */
	Integer deleteStatus(Integer id,String tenantId);

	/**
	 * 获取最大编号
	 * @param tenantId
	 * @return
	 */
	Integer selectOrderMax(String tenantId);

	/**
	 * 通过对应编号查询
	 * @param odering
	 * @return
	 */
	WorkOrderStatus selectByOrdering(Integer odering);

	/**
	 * TODO
	 * @param name
	 * @param tenantId
	 * @return
	 */
	WorkOrderStatus selectByEqualsName(String name,
                                       String tenantId);

	/**
	 * 获取所有状态列表
	 * @param tenantId
	 * @return
	 */
	List<WorkOrderStatus> selectAll(String tenantId);

	/**
	 * 所有状态列表的分页
	 * @param currentPage
	 * @param pageSize
	 * @param tenantId
	 * @return
	 */
	List<WorkOrderStatus> listPageAllWorkOrderStatus(Integer currentPage, Integer pageSize, String tenantId);


	/**
	 * TODO
	 * @param name
	 * @param currentPage
	 * @param pageSize
	 * @param tenantId
	 * @return
	 */
	DbResponse selectByNameNotContainNotNoChanging(String name, Integer currentPage,
                                                   Integer pageSize, String tenantId);


	/**
	 * 获取节点按钮信息
	 * @param statusId
	 * @return
	 */
	JSONArray getWorkTypeNodeButton(Integer statusId);
}
